package com.gopay.common.user.dao;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

import com.gopay.common.base.dao.BaseDAO;
import com.gopay.common.domain.cust.CustCorpInfo;

/**
 * CustCorpInfoQuery DAO接口
 * 
 * @CustCorpInfoQueryDAO.java
 * @author liuxin
 * @2013-1-5 上午9:41:01 www.gopay.com.cn Inc.All rights reserved.
 */
public interface CustCorpInfoQueryDAO extends BaseDAO<CustCorpInfo, Serializable> {

    /**
     * 根据email获取企业客户信息
     * @param email
     * @return
     */
    public CustCorpInfo findCustEmail(String email);
    
    /**
     * 获取已开通的用户
     * @param email
     * @return
     */
    public List<CustCorpInfo> findCustCorpOpen(String email);
    
    /**
     * 根据corpName获取企业客户信息
     * @param corpName
     * @return
     */
    public CustCorpInfo findByCorpName(String corpName);
    
    /** 
     * 根据merName获取企业客户信息
     * @param corpName
     * @return 
     */
    public CustCorpInfo findByMerName (String merName);
    
    /**
     * 根据corpName获取所有企业客户信息
     * @param corpName
     * @return
     */
    public List<CustCorpInfo> findAllByCorpName(String corpName);
    
    /**
     * 根据手机号获取企业客户信息
     * @param mobile
     * @return
     */
    public CustCorpInfo findCustMobile(String mobile);
    
    /**
     * 证件号是否重复
     * @param certType
     * @param certNo
     * @return
     */
    public int findByCertTypeAndCertNo(String certType, String certNo);

    /**
     * 获取最新未激活的企业客户
     * @param email
     * @return
     */
    public CustCorpInfo getNoActiveCustByCustEmail(String email);
    /**
     * 获取最新未激活的企业客户
     * @param mobile
     * @return
     */
    public CustCorpInfo getNoActiveCustByCustMob(String mobile);
    
    public CustCorpInfo findByMobileNo(String mobileNo);

	public CustCorpInfo getByCustId(String custId);
	
	public List<CustCorpInfo> getByEmailAndCustStat(String email,String[] custStat);

	/**
     * @param email
     * @return
     * @Desc 根据email、custName、certType查询企业信息
     * @Date 2016/11/30 11:34 by xuexj
     */
    CustCorpInfo findByEmail(String email,String custName,String certType);

    /**
     * @param mob
     * @return
     * @Desc 根据mob、custName、certType查询企业信息
     * @Date 2016/11/30 11:35 by xuexj
     */
    CustCorpInfo findByMobile(String mob,String custName,String certType);

    List<CustCorpInfo> getByEmailWithoutStat(String email);

    /**
     * 查询多个商户信息
     * @param custIds
     * @return
     */
    List<CustCorpInfo> getInfoByCustIds(List<Object> custIds);
    
    /**
     * 查询merCustId
     * @param merId
     * @param MerCustId
     * @return
     */
	List<CustCorpInfo> findByMerCustId(String merId, String MerCustId);
}
